(* types.ml - Types used in this program.
 * Licence: LGPLv3
 * Authors: Franck "kushou" Michea < michea_f@epita.fr >
 *)

type coordlist = (int * int) list

type colorzone = (int * int * int) * coordlist

type heightzone = int * (int * int * int) * coordlist

type zones = Color of colorzone | Height of heightzone

type img_format = Sdlvideo.surface

type img_type = Base | Grey | Edges | IWEdges | GWEdges | NReduc | Grid | RH | Obj

type arg_mode =
    Nothing
  | ImageType of img_type
  | ShowSteps
  | Output

type process_steps =
    {
      mutable output : bool;
      mutable steps : img_type;
      mutable show_steps : bool
    }
